- (void)loadAssociations
{
	int i,j;
	unsigned int ne,na;
	signed int offset;
	
	for (i=0; i<1; i++) {	// Loop for all 8 worlds
		
		for (j=0; j<0x3F; j++) {	// 0x3F
			
			ptr = [rom bytes] + 0x4523 + (j * 2) + 0x10;	// 0x4523 = Area Pointers for West Hyrule
			offset = *ptr | *(ptr + 1) << 8;
			offset -= 0x4CB5;
			offset -= 0x4000;	// Bank Number * 0x4000
			
			na = 0;
			while (offset > 0) {
				offset -= areaData[i][na][0];
				na++;
				if (na >= 0x3F) break;
			}
			
			areaAssoc[i][j] = na; //NSLog(@"Area %02X\t%02X",j,na);
			
			ptr = [rom bytes] + 0x45A1 + (j * 2) + 0x10;	// 0x45A1 = Enemy Pointers for West Hyrule
			offset = *ptr | *(ptr + 1) << 8;
			offset -= 0x7000;
			
			ne = 0;
			while (offset > 0) {
				offset -= enemyData[i][ne][0];
				ne++;
				if (ne >= 0x3F) break;
			}
			
			enemyAssoc[i][j] = ne; NSLog(@"Area %02X  %02X  %02X",j,na,ne);
		}
	}
}
